package com.imau.service;

import com.imau.bean.SysDept;
import com.imau.bean.TreeEntity;

import java.util.List;

public interface SysDeptService {

    /**
     * 获取部门
     * @param did
     * @return
     */
    SysDept queryById(String did);

    /**
     * 新增保存部门信息
     *
     * @param dept 部门信息
     * @return 结果
     */
    public boolean saveDept(SysDept dept);

    /**
     * 修改保存部门信息
     *
     * @param dept 部门信息
     * @return 结果
     */
    public boolean editDept(SysDept dept);

    /**
     * 删除部门管理信息
     *
     * @param deptId 部门ID
     * @return 结果
     */
    public boolean removeDeptById(String deptId);


    /**
     * 部门管理信息
     *
     * @param dept 部门部门对象
     * @return 结果
     */
    public List<SysDept> queryListDept(SysDept dept);


    /**
     * 构建前端所需要树结构
     *
     * @param depts 部门列表
     * @return 树结构列表
     */
    public List<SysDept> buildDeptTree(List<SysDept> depts);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param depts 部门列表
     * @return 下拉树结构列表
     */
    public List<TreeEntity> buildDeptTreeSelect(List<SysDept> depts);


    /**
     * 修改子元素关系
     *
     * @param deptId 被修改的部门ID
     * @param newAncestors 新的父ID集合
     * @param oldAncestors 旧的父ID集合
     */
    public void updateDeptChildren(String deptId, String newAncestors, String oldAncestors);

}
